perm filename SUBR.F4[MUS,LCS]2 blob sn#108377 filedate 1974-06-21 generic text, type T, neo UTF8
00100	C*****  THIS ROUTINE DIVIDES OCTAVE INTO ANY NUMBER OF EQUAL PARTS
00200	
00300		SUBROUTINE SUBR
00400	      COMMON/X/P(30),INST,IPAR,CNT(25),BT,IREST,CVT(35),PL(30),DF
00500	C   CALL SUBROUTINE FROM P12. P3 CAN BE NOTES OR NUMBS.
00600		X=P(3)
00700		IF(PL(3).EQ.1)GO TO 1
00800		IF(P(12).EQ.0)X=IFIX(X)
00900	C  FOR RAND NOTES TO PRINT OUT FREQS.
01000		X=30.868*2**(X/12)
01100	C  X=FREQ. IN HZ. BASED ON NOTE # IN P3.
01200		PL(3)=1.
01300	C  THIS CAUSES FREQ. NUM TO PRINT INSTEAD OF LITERAL CHARACTERS.
01400	1	P(3)=X*2**(P(11)/P(12))
01500	C  P12=# OF DIVISIONS OF THE OCTAVE.  P11=CHROMATIC STEP IN THAT DIV.
01600		RETURN
01700		END
01800	
01900	C   STEPS  ; TYPICAL INPUT FOR MICROTONE SUBROUTINE.
02000	C   CLAR  /P2 .3/P3 A3/P4 1000;
02100	C   P11 NUM/0/1/2/3/4/5/6/7/8/9/FINE*;
02200	C   P12 9 SUBR/END;  OCTAVE IS DIVIDED INTO 9 PARTS.